﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Direct.EntityStore;

namespace Direct.Security.Model
{
    public class SecObjEntity : StoreEntity
    {
        /// <summary>
        /// Identifica o objeto de segurança, este id deve ser unico.
        /// </summary>
        [PersistentMember]
        public String ObjectId { get; set; }

        /// <summary>
        /// Identifica o tipo de objeto de seguranca. Veja <see cref="Direct.Security.SecObjType"/>.
        /// </summary>
        [PersistentMember]
        public String ObjectType { get; set; }

        /// <summary>
        /// Nome do objeto
        /// </summary>
        [PersistentMember]
        public String Name { get; set; }

        /// <summary>
        /// Descrição do objeto
        /// </summary>
        [PersistentMember]
        public String Description { get; set; }

        /// <summary>
        /// Indica se o objeto está ativo ou não.
        /// </summary>
        [PersistentMember]
        public bool Active { get; set; }

        /// <summary>
        /// Campo de extensão 1. Este campo é usado de forma diferente por cada tipo de objeto.
        /// </summary>
        [PersistentMember]
        public string ExtFld1 { get; set; }

        /// <summary>
        /// Campo de extensão 2. Este campo é usado de forma diferente por cada tipo de objeto.
        /// </summary>
        [PersistentMember]
        public string ExtFld2 { get; set; }

        /// <summary>
        /// Campo de extensão 3. Este campo é usado de forma diferente por cada tipo de objeto.
        /// </summary>
        [PersistentMember]
        public string ExtFld3 { get; set; }
    }
}
